
import pandas as pd

# 读取数据,填写文件路径，配置
data = pd.read_csv('C:/Users/IT14/Desktop/sitka_weather_2018_simple.csv',encoding="ANSI",usecols=['DATE','TMAX','TMIN'])

# 取消最大显示行数和列数限制
pd.options.display.max_columns=None
pd.options.display.max_rows=None

# 选择行
data_1 = data.head(2)
print(data_1)

# 查看数据尺寸
print(data.shape)
# 查看数据数量
print(data.size)
# 查看字段类型
print(data.dtypes)
# 查看数据信息
# print(data.info)
# 数据描述:只统计数值型数据
print(data.describe())
# 获取单个字段取值数目,normalize=True表示显示占比
# print(data['TMAX'].value_counts())

# cut函数
# print(pd.cut(range(10),bins=[0,10,20,30,40,50,60,70,80,90,100],right=True))
bins=[10,20,30,40,50,60,70,80,90,100,110]

boxes,lables = pd.cut(data['TMAX'],bins=bins,right=True,retbins=True,include_lowest=True)
print(lables)
print(boxes.value_counts().sort_index().values)

# 正常函数
data['DATE'] = pd.to_datetime(data['DATE'])
data = data.set_index('DATE')
print(data.head(4))
data = data.resample('ME').sum().to_period('M')
print(data.head(2))
print(data.dtypes)
print(str(data.index[0]))
sss = []
for index,dt in enumerate(data.index):
    sss.append(dt)
TMAX,TMIN = [],[]
for dt in enumerate(data['TMAX']):
    TMAX.append(int(dt[1]))
for dt in enumerate(data['TMIN']):
    TMIN.append(int(dt[1]))
print(sss,TMAX,TMIN)




# 绘制柱形图
import matplotlib
import matplotlib.pyplot as plt

matplotlib.rc('font',family='MicroSoft YaHei',weight='bold')
# 设置画布大小
pl = plt.figure(figsize=(15,8))
#设置x,y轴
plt.ylabel('2018年销售量',fontsize=22)
plt.xlabel('月份',fontsize=22)
# 柱形图bar
plt.xticks(range(0,len(sss)),sss)
#设置两个柱形，最大值、最小值
plt1=plt.bar(range(0,len(sss)),TMAX,label='最高销售额',width=0.4)
plt2=plt.bar([i+0.4 for i in range(0,len(sss))],TMIN,label='最低销售额',width=0.4)
# 设置坐标
# for y in TMAX,TMIN:
#     for a,b in zip(range(0,len(sss)),y):
#         if y == TMIN:
#             a+=0.4
#         plt.text(a,b+2,b,ha='center')
plt.bar_label(plt1,label_type='edge')
plt.bar_label(plt2,label_type='edge')
pl.autofmt_xdate()
plt.legend()
#保存文件为图片
plt.savefig('销售额.png')
#在python编辑器打开图片
plt.show()
plt.close()


